Data transmission based on a Transmission Control Protocol/Internet Protocol (TCP/IP) is known as a method for ensuring communication reliability in Internet Protocol (IP) networks, such as the Internet and intranets, in which a connection is established between a pair of edge nodes so as to communicate with each other. Further, congestion control is known as one of mechanisms for ensuring the reliability of TCP/IP communication, in which an Explicit Congestion Notification (ECN) field is used (as shown in RFC2481, RFC3168). The ECN field is implemented using a Type of Service (ToS) field in an IP header and a control bit in a TCP header.
When congestion has occurred in an intermediate router along a communication route, the ECN field allows the intermediate router to inform a edge node of the communication route, about congestion occurrence in the intermediate router before packets begin to be dropped by the intermediate router. Upon being informed the congestion occurrence, the edge node is able to relax the congestion by putting restriction on the data transmission rate before the intermediate router begin to drop the packets.
FIG. 4 is a schematic diagram illustrating an example of an ECN field included in the ToS field of an IP header. Out of eight bits (from bit 0 to bit 7) in a ToS field 500, bit 6 and bit 7 are used as an ECN field where the bit 6 is defined as an ECT (ECN Capable Transport) bit and the bit 7 is defined as a CE (Congestion Experienced) bit.
The outline of procedures for congestion control using the ECN field based on a TCP/IP is as follows:
(1). A transmitting and receiving edge nodes establish a connection between the transmitting and receiving edge nodes by performing TCP three-way handshaking, so as to start a communication between the transmitting and receiving edge nodes. At the same time, the transmitting and receiving edge nodes perform negotiation between them as to whether the ECN field is available or not. Here, the congestion control using the ECN field becomes effective when it is confirmed that both the transmitting and receiving edge nodes are capable of using the ECN field.
(2). Upon detecting congestion occurrence, an intermediate router along the communication route between the transmitting and receiving edge nodes sets “1” to the CE bit in the IP header of a packet to be transferred.
(3). The receiving edge node, upon receiving the packet with the CE bit set at “1”, recognizes that there is congestion occurrence in an intermediate router along the communication route. The receiving edge node that has recognized the congestion occurrence, makes an ECE (ECN Echo) flag of the TCP header effective.
(4). The transmitting edge node, upon receiving an ACK with the ECE flag made effective, reduces the amount of next transmission data and transmits a packet having the TCP header in which a CWR (Congestion Window Reduced) flag is made effective.
(5). The receiving edge node, upon receiving the packet having the CWR flag made effective, recognizes that the transmitting edge node has restricted the amount of transmission data.
Thus, using the ECN field allows congestion control that keeps the amount of transmission data passing through the communication route at an appropriate level, thereby avoiding retransmission and slow starting control due to packet losses even if congestion has occurred in an intermediate router along the communication route.
Further, in addition to a TCP, it is also possible to use an ECN field in combination with a communication protocol corresponding to a transport layer positioned above an IP layer, such as a SCTP (stream Control Transmission Protocol).
On the contrary, a UDP (User Datagram Protocol) is a connectionless protocol and based on best-effort communication. Although a UDP allows high-speed processing with less overhead, an ECN field is not supported by RFCs as to the UDP, and a guarantee on the communication reliability when using the UDP is entrusted to its higher layer protocol. Therefore, it is difficult to use the ECN field when the UDP is used for transmitting user data that accounts for the majority of traffic, for example, in the case of a mobile IP network. Also, it is difficult to use the ECN field in the case of a streaming protocol such as a RTP (Real-time Transport Protocol), which is used for streaming delivery service such as video distribution and music distribution since it uses the UDP as a communication protocol.
As mentioned above, since it is difficult to perform UDP based flow control on the congestion that has occurred in a reception node or in an intermediate router along a communication route, there may be no other choices left but to perform flow control based on other communication protocol positioned at a protocol layer higher than a transport layer.
In connection with a data transmission based on a UDP, international publication No. 2002/025878 suggests a communication method for transmitting data at an appropriate transmission rate that is determined by measuring a reciprocating propagation delay time along a communication route so as to improve transmission quality.
However, according to the above suggestion, data transmission is required to be temporally stopped when changing a transmission rate, and it is difficult for a transmitting node to detect congestion that has occurred in a receiving node.